home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 3 / ct-rom iiib.zip / ct-rom iiib / WINDOWS / DIVERSEN / WINE02BX / EMACS.3 < prev    next >
Text File  |  1993-03-28  |  47KB  |  1,165 lines

  1. Info file ../info/emacs, produced by Makeinfo, -*- Text -*- from input
  2. file lemacs.tex.
  3.  
  4.    This file documents the GNU Emacs editor.
  5.  
  6.    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
  7. 1991, 1992 Lucid, Inc.
  8.  
  9.    Permission is granted to make and distribute verbatim copies of
  10. this manual provided the copyright notice and this permission notice
  11. are preserved on all copies.
  12.  
  13.    Permission is granted to copy and distribute modified versions of
  14. this manual under the conditions for verbatim copying, provided also
  15. that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
  16. General Public License" are included exactly as in the original, and
  17. provided that the entire resulting derived work is distributed under
  18. the terms of a permission notice identical to this one.
  19.  
  20.    Permission is granted to copy and distribute translations of this
  21. manual into another language, under the above conditions for modified
  22. versions, except that the sections entitled "The GNU Manifesto",
  23. "Distribution" and "GNU General Public License" may be included in a
  24. translation approved by the author instead of in the original English.
  25.  
  26. 
  27. File: emacs,  Node: Minibuffer,  Next: M-x,  Prev: Undo,  Up: Top
  28.  
  29. The Minibuffer
  30. **************
  31.  
  32.    Emacs commands use the "minibuffer" to read arguments more
  33. complicated than a single number.  Minibuffer arguments can be file
  34. names, buffer names, Lisp function names, Emacs command names, Lisp
  35. expressions, and many other things, depending on the command reading
  36. the argument.  To edit the argument in the minibuffer, you can use
  37. Emacs editing commands.
  38.  
  39.    When the minibuffer is in use, it appears in the echo area, and the
  40. cursor moves there.  The beginning of the minibuffer line displays a
  41. "prompt" indicating what kind of input you should supply and how it
  42. will be used.  The prompt is often derived from the name of the command
  43. the argument is for.  The prompt normally ends with a colon.
  44.  
  45.    Sometimes a "default argument" appears in parentheses after the
  46. colon; it too is part of the prompt.  The default is used as the
  47. argument value if you enter an empty argument (e.g., just type RET). 
  48. For example, commands that read buffer names always show a default,
  49. which is the name of the buffer that will be used if you type just RET.
  50.  
  51.    The simplest way to give a minibuffer argument is to type the text
  52. you want, terminated by RET to exit the minibuffer.  To get out of the
  53. minibuffer and cancel the command that it was for, type `C-g'.
  54.  
  55.    Since the minibuffer uses the screen space of the echo area, it can
  56. conflict with other ways Emacs customarily uses the echo area.  Here
  57. is how Emacs handles such conflicts:
  58.  
  59.    * If a command gets an error while you are in the minibuffer, this
  60.      does not cancel the minibuffer.  However, the echo area is needed
  61.      for the error message and therefore the minibuffer itself is
  62.      hidden for a while.  It comes back after a few seconds, or as
  63.      soon as you type anything.
  64.  
  65.    * If you use a command in the minibuffer whose purpose is to print a
  66.      message in the echo area (for example `C-x =') the message is
  67.      displayed normally, and the minibuffer is hidden for a while.  It
  68.      comes back after a few seconds, or as soon as you type anything.
  69.  
  70.    * Echoing of keystrokes does not take place while the minibuffer is
  71.      in use.
  72.  
  73. * Menu:
  74.  
  75. * File: Minibuffer File.  Entering file names with the minibuffer.
  76. * Edit: Minibuffer Edit.  How to edit in the minibuffer.
  77. * Completion::          An abbreviation facility for minibuffer input.
  78. * Repetition::          Re-executing commands that used the minibuffer.
  79.  
  80. 
  81. File: emacs,  Node: Minibuffer File,  Next: Minibuffer Edit,  Prev: Minibuffer,  Up: Minibuffer
  82.  
  83. Minibuffers for File Names
  84. ==========================
  85.  
  86.    Sometimes the minibuffer starts out with text in it.  For example,
  87. when you are supposed to give a file name, the minibuffer starts out
  88. containing the "default directory", which ends with a slash.  This
  89. informs you in which directory the file will be found if you do not
  90. specify one.  For example, the minibuffer might start out with
  91.  
  92.      Find File: /u2/emacs/src/
  93.  
  94. where `Find File: ' is the prompt.  Typing `buffer.c' specifies the
  95. file 
  96. `/u2/emacs/src/buffer.c'.  To find files in nearby directories, use
  97. `..'; thus, if you type `../lisp/simple.el', the file that you visit
  98. will be the one named 
  99. `/u2/emacs/lisp/simple.el'.  Alternatively, you can use  `M-DEL' to
  100. kill directory names you don't want (*note Words::.).
  101.  
  102.    You can also type an absolute file name, one starting with a slash
  103. or a tilde, ignoring the default directory.  For example, to find the
  104. file `/etc/termcap', just type the name, giving
  105.  
  106.      Find File: /u2/emacs/src//etc/termcap
  107.  
  108. Two slashes in a row are not normally meaningful in Unix file names,
  109. but they are allowed in GNU Emacs.  They mean, "ignore everything
  110. before the second slash in the pair."  Thus, `/u2/emacs/src/' is
  111. ignored, and you get the file `/etc/termcap'.
  112.  
  113.    If you set `insert-default-directory' to `nil', the default
  114. directory is not inserted in the minibuffer.  This way, the minibuffer
  115. starts out empty.  But the name you type, if relative, is still
  116. interpreted with respect to the same default directory.
  117.  
  118. 
  119. File: emacs,  Node: Minibuffer Edit,  Next: Completion,  Prev: Minibuffer File,  Up: Minibuffer
  120.  
  121. Editing in the Minibuffer
  122. =========================
  123.  
  124.    The minibuffer is an Emacs buffer (albeit a peculiar one), and the
  125. usual Emacs commands are available for editing the text of an argument
  126. you are entering.
  127.  
  128.    Since RET in the minibuffer is defined to exit the minibuffer, you
  129. must use `C-o' or `C-q LFD' to insert a newline into the minibuffer.
  130. (Recall that a newline is really the LFD character.)
  131.  
  132.    The minibuffer has its own window which always has space on the
  133. screen but acts as if it were not there when the minibuffer is not in
  134. use.  When the minibuffer is in use. The minibuffer window is just
  135. like the others; you can switch to another window with `C-x o', edit
  136. text in other windows and perhaps even visit more files, before
  137. returning to the minibuffer to submit the argument.  You can kill text
  138. in another window, return to the minibuffer window, and then yank the
  139. text to use it in the argument.  *Note Windows::.
  140.  
  141.    There are, however, some restrictions on the use of the minibuffer
  142. window.  You cannot switch buffers in it--the minibuffer and its
  143. window are permanently attached.  You also cannot split or kill the
  144. minibuffer window, but you can make it taller with `C-x ^'.
  145.  
  146.    If you are in the minibuffer and issue a command that displays help
  147. text in another window, that window will be scrolled if you type
  148. `C-M-v' while in the minibuffer until you exit the minibuffer.  This
  149. feature is helpful if a completing minibuffer gives you a long list of
  150. possible completions.
  151.  
  152.    If the variable `minibuffer-confirm-incomplete' is `true', you are
  153. asked for confirmation if there is no known completion for the text
  154. you typed. For example, if you attempted to visit a non-existent file,
  155. the minibuffer might read:
  156.  
  157.              Find File:chocolate_bar.c [no completions, confirm]
  158.  
  159.    If you press `Return' again, that confirms the filename. Otherwise,
  160. you can continue editing it.
  161.  
  162.    Emacs supports recursive use of the minibuffer.  However, it is
  163. easy to do this by accident (because of autorepeating keyboards, for
  164. example) and get confused.  Therefore, most Emacs commands that use the
  165. minibuffer refuse to operate if the minibuffer window is selected.  If
  166. the minibuffer is active but you have switched to a different window,
  167. recursive use of the minibuffer is allowed--if you know enough to try
  168. to do this, you probably will not get confused.
  169.  
  170.    If you set the variable `enable-recursive-minibuffers' to be
  171. non-`nil', recursive use of the minibuffer is always allowed.
  172.  
  173. 
  174. File: emacs,  Node: Completion,  Next: Repetition,  Prev: Minibuffer Edit,  Up: Minibuffer
  175.  
  176. Completion
  177. ==========
  178.  
  179.    When appropriate, the minibuffer provides a "completion" facility. 
  180. You type the beginning of an argument and one of the completion keys,
  181. and Emacs visibly fills in the rest, depending on what you have already
  182. typed.
  183.  
  184.    When completion is available, certain keys--TAB, RET, and SPC--are
  185. redefined to complete an abbreviation present in the minibuffer into a
  186. longer string that it stands for, by matching it against a set of
  187. "completion alternatives" provided by the command reading the
  188. argument.  `?' is defined to display a list of possible completions of
  189. what you have inserted.
  190.  
  191.    For example, when the minibuffer is being used by `Meta-x' to read
  192. the name of a command, it is given a list of all available Emacs
  193. command names to complete against.  The completion keys match the text
  194. in the minibuffer against all the command names, find any additional
  195. characters of the name that are implied by the ones already present in
  196. the minibuffer, and add those characters to the ones you have given.
  197.  
  198.    Case is normally significant in completion, because it is
  199. significant in most of the names that you can complete (buffer names,
  200. file names and command names).  Thus, `fo' will not complete to `Foo'.
  201.  When you are completing a name in which case does not matter, case
  202. may be ignored for completion's sake if specified by program.
  203.  
  204.    When a completion list is displayed, the completions will highlight
  205. as you move the mouse over them.  Clicking middle on any highlighted
  206. completion will "select" it just as if you had typed it in and hit RET.
  207.  
  208. Completion Example
  209. ------------------
  210.  
  211.    Consider the following example.  If you type `Meta-x au TAB', TAB
  212. looks for alternatives (in this case, command names) that start with
  213. `au'.  There are only two commands: `auto-fill-mode' and
  214. `auto-save-mode'.  They are the same as far as `auto-', so the `au' in
  215. the minibuffer changes to `auto-'.
  216.  
  217.    If you type TAB again immediately, there are multiple possibilities
  218. for the very next character--it could be `s' or `f'--so no more
  219. characters are added; but a list of all possible completions is
  220. displayed in another window.
  221.  
  222.    If you go on to type `f TAB', this TAB sees `auto-f'.  The only
  223. command name starting this way is `auto-fill-mode', so completion
  224. inserts the rest of that command.  You now have `auto-fill-mode' in
  225. the minibuffer after typing just `au TAB f TAB'.  Note that TAB has
  226. this effect because in the minibuffer it is bound to the function
  227. `minibuffer-complete' when completion is supposed to be done.
  228.  
  229. Completion Commands
  230. -------------------
  231.  
  232.    Here is a list of all the completion commands defined in the
  233. minibuffer when completion is available.
  234.  
  235. `TAB'
  236.      Complete the text in the minibuffer as much as possible 
  237.       (`minibuffer-complete').
  238.  
  239. `SPC'
  240.      Complete the text in the minibuffer but don't add or fill out more
  241.      than one word (`minibuffer-complete-word').
  242.  
  243. `RET'
  244.      Submit the text in the minibuffer as the argument, possibly
  245.      completing first as described below
  246.      (`minibuffer-complete-and-exit').
  247.  
  248. `?'
  249.      Print a list of all possible completions of the text in the
  250.      minibuffer (`minibuffer-list-completions').
  251.  
  252. `button2'
  253.      Select the highlighted text under the mouse as a minibuffer
  254.      response.  When the minibuffer is being used to prompt the user
  255.      for a completion, any valid completions which are visible on the
  256.      screen will highlight when the mouse moves over them.  Clicking
  257.      button2 will select the highlighted completion and exit the
  258.      minibuffer.  (`minibuf-select-highlighted-completion').
  259.  
  260.    SPC completes similar to TAB, but never goes beyond the next hyphen
  261. or space.  If you have `auto-f' in the minibuffer and type SPC, it
  262. finds that the completion is `auto-fill-mode', but it stops completing
  263. after `fill-'. The result is `auto-fill-'.  Another SPC at this point
  264. completes all the way to `auto-fill-mode'.  SPC in the minibuffer runs
  265. the function `minibuffer-complete-word' when completion is available.
  266.  
  267.    There are three different ways that RET can work in completing
  268. minibuffers, depending on how the argument will be used.
  269.  
  270.    * "Strict" completion is used when it is meaningless to give any
  271.      argument except one of the known alternatives.  For example, when
  272.      `C-x k' reads the name of a buffer to kill, it is meaningless to
  273.      give anything but the name of an existing buffer.  In strict
  274.      completion, RET refuses to exit if the text in the minibuffer
  275.      does not complete to an exact match.
  276.  
  277.    * "Cautious" completion is similar to strict completion, except that
  278.      RET exits only if the text was an exact match already, not
  279.      needing completion.  If the text is not an exact match, RET does
  280.      not exit, but it does complete the text.  If it completes to an
  281.      exact match, a second RET will exit.
  282.  
  283.      Cautious completion is used for reading file names for files that
  284.      must already exist.
  285.  
  286.    * "Permissive" completion is used when any string is meaningful,
  287.      and the list of completion alternatives is just a guide.  For
  288.      example, when `C-x C-f' reads the name of a file to visit, any
  289.      file name is allowed, in case you want to create a file.  In
  290.      permissive completion, RET takes the text in the minibuffer
  291.      exactly as given, without completing it.
  292.  
  293.    The completion commands display a list of all possible completions
  294. in a window whenever there is more than one possibility for the very
  295. next character.  Typing `?' explicitly requests such a list.  The list
  296. of completions counts as help text, so `C-M-v' typed in the minibuffer
  297. scrolls the list.
  298.  
  299.    When completion is done on file names, certain file names are
  300. usually ignored.  The variable `completion-ignored-extensions'
  301. contains a list of strings; a file whose name ends in any of those
  302. strings is ignored as a possible completion.  The standard value of
  303. this variable has several elements including `".o"', `".elc"',
  304. `".dvi"' and `"~"'.  The effect is that, for example, `foo' completes
  305. to `foo.c' even though `foo.o' exists as well.  If the only possible
  306. completions are files that end in "ignored" strings, they are not
  307. ignored.
  308.  
  309.    If a completion command finds the next character is undetermined, it
  310. automatically displays a list of all possible completions.  If the
  311. variable `completion-auto-help' is set to `nil', this does not happen,
  312. and you must type `?' to display the possible completions.
  313.  
  314.    If the variable `minibuffer-confirm-incomplete' is set to true,
  315. then in contexts where `completing-read' allows answers that are not
  316. valid completions, an extra RET must be typed to confirm the response.
  317.  This is helpful for catching typos, etc.
  318.  
  319. 
  320. File: emacs,  Node: Repetition,  Prev: Completion,  Up: Minibuffer
  321.  
  322. Repeating Minibuffer Commands
  323. =============================
  324.  
  325.    Every command that uses the minibuffer at least once is recorded on
  326. a special history list, together with the values of the minibuffer
  327. arguments, so that you can repeat the command easily.  In particular,
  328. every use of `Meta-x' is recorded, since `M-x' uses the minibuffer to
  329. read the command name.
  330.  
  331. `C-x ESC'
  332.      Re-execute a recent minibuffer command 
  333.      (`repeat-complex-command').
  334.  
  335. `M-p'
  336.      Within `C-x ESC', move to previous recorded command
  337.      (`previous-complex-command').
  338.  
  339. `M-n'
  340.      Within `C-x ESC', move to the next (more recent) recorded command
  341.      (`next-complex-command').
  342.  
  343. `M-x list-command-history'
  344.      Display the entire command history, showing all the commands `C-x
  345.      ESC' can repeat, most recent first.
  346.  
  347.    `C-x ESC' is used to re-execute a recent command that used the
  348. minibuffer. With no argument, it repeats the last command.  A numeric
  349. argument specifies which command to repeat; 1 means the last one, and
  350. larger numbers specify earlier commands.
  351.  
  352.    `C-x ESC' works by turning the previous command into a Lisp
  353. expression and then entering a minibuffer initialized with the text for
  354. that expression.  If you type just RET, the command is repeated as
  355. before.  You can also change the command by editing the Lisp
  356. expression.  The expression you finally submit will be executed.  The
  357. repeated command is added to the front of the command history unless
  358. it is identical to the most recently executed command already there.
  359.  
  360.    Even if you don't understand Lisp syntax, it will probably be
  361. obvious which command is displayed for repetition.  If you do not
  362. change the text, you can be sure the command will repeat exactly as
  363. before.
  364.  
  365.    If you are in the minibuffer for `C-x ESC' and the command shown to
  366. you is not the one you want to repeat, you can move around the list of
  367. previous commands using `M-n' and `M-p'.  `M-p' replaces the contents
  368. of the minibuffer with the next earlier recorded command, and `M-n'
  369. replaces it with the next later command.  After finding the desired
  370. previous command, you can edit its expression and then resubmit it by
  371. typing RET.  Any editing you have done on the command to be repeated
  372. is lost if you use `M-n' or `M-p'.
  373.  
  374.    `M-n' and `M-p' are specially defined within `C-x ESC' to run the
  375. commands `previous-complex-command' and `next-complex-command'.
  376.  
  377.    The list of previous commands using the minibuffer is stored as a
  378. Lisp list in the variable `command-history'.  Each element of the list
  379. is a Lisp expression which describes one command and its arguments. 
  380. Lisp programs can reexecute a command by feeding the corresponding
  381. `command-history' element to `eval'.
  382.  
  383. 
  384. File: emacs,  Node: M-x,  Next: Help,  Prev: Minibuffer,  Up: Top
  385.  
  386. Running Commands by Name
  387. ************************
  388.  
  389.    The Emacs commands that are used often or that must be quick to
  390. type are bound to keys--short sequences of characters--for convenient
  391. use.  Other Emacs commands that are used more rarely are not bound to
  392. keys; to run them, you must refer to them by name.
  393.  
  394.    A command name consists, by convention, of one or more words,
  395. separated by hyphens; for example, `auto-fill-mode' or `manual-entry'.
  396.  The use of English words makes the command name easier to remember
  397. than a key made up of obscure characters, even though it results in
  398. more characters to type.  You can run any command by name, even if it
  399. can be run by keys as well.
  400.  
  401.    To run a command by name, to start with `M-x', then type the
  402. command name, and finish with RET.  `M-x' uses the minibuffer to read
  403. the command name.  RET exits the minibuffer and runs the command.
  404.  
  405.    Emacs uses the minibuffer for reading input for many different
  406. purposes; on this occasion, the string `M-x' is displayed at the
  407. beginning of the minibuffer as a "prompt" to remind you that your
  408. input should be the name of a command to be run.  *Note Minibuffer::,
  409. for full information on the features of the minibuffer.
  410.  
  411.    You can use completion to enter a command name.  For example, to
  412. invoke the command `forward-char', type:
  413.  
  414.      M-x forward-char RET
  415.  
  416.    or
  417.  
  418.      M-x fo TAB c RET
  419.  
  420. Note that `forward-char' is the same command that you invoke with the
  421. key `C-f'.  You can call any command (interactively callable function)
  422. defined in Emacs by its name using `M-x' whether or not any keys are
  423. bound to it.
  424.  
  425.    If you type `C-g' while Emacs reads the command name, you cancel
  426. the `M-x' command and get out of the minibuffer, ending up at top
  427. level.
  428.  
  429.    To pass a numeric argument to a command you are invoking with
  430. `M-x', specify the numeric argument before the `M-x'.  `M-x' passes
  431. the argument along to the function that it calls.  The argument value
  432. appears in the prompt while the command name is being read.
  433.  
  434.    You can use the command `M-x interactive' to specify a way of
  435. parsing arguments for interactive use of a function.  For example,
  436. write
  437.  
  438.        (defun foo (arg) "Doc string" (interactive "p") ...use arg...)
  439.  
  440.    to make ARG be the prefix argument when `foo' is called as a
  441. command.  The call to `interactive' is actually a declaration rather
  442. than a function; it tells `call-interactively' how to read arguments
  443. to pass to the function.  When actually called, `interactive' returns
  444. `nil'.
  445.  
  446.    The argument of INTERACTIVE is usually a string containing a code
  447. letter followed by a prompt.  Some code letters do not use I/O to get
  448. the argument and do not need prompts.  To prompt for multiple
  449. arguments, you must provide a code letter, its prompt, a newline, and
  450. another code letter, etc.  If the argument is not a string, it is
  451. evaluated to get a list of arguments to pass to the function.  If you
  452. do not provide an argument to `interactive', no arguments are passed
  453. when calling interactively.
  454.  
  455.    Available code letters are:
  456.  
  457. `a'
  458.      Function name: symbol with a function definition.
  459.  
  460. `b'
  461.      Name of existing buffer.
  462.  
  463. `B'
  464.      Name of buffer, possibly nonexistent.
  465.  
  466. `c'
  467.      Character.
  468.  
  469. `C'
  470.      Command name: symbol with interactive function definition.
  471.  
  472. `d'
  473.      Value of point as number.  Does not do I/O.
  474.  
  475. `D'
  476.      Directory name.
  477.  
  478. `e'
  479.      Last mouse event.
  480.  
  481. `f'
  482.      Existing file name.
  483.  
  484. `F'
  485.      Possibly nonexistent file name.
  486.  
  487. `k'
  488.      Key sequence (string).
  489.  
  490. `m'
  491.      Value of mark as number.  Does not do I/O.
  492.  
  493. `n'
  494.      Number read using minibuffer.
  495.  
  496. `N'
  497.      Prefix arg converted to number, or if none, do like code `n'.
  498.  
  499. `p'
  500.      Prefix arg converted to number.  Does not do I/O.
  501.  
  502. `P'
  503.      Prefix arg in raw form.  Does not do I/O.
  504.  
  505. `r'
  506.      Region: point and mark as two numeric arguments, smallest first. 
  507.      Does not do I/O.
  508.  
  509. `s'
  510.      Any string.
  511.  
  512. `S'
  513.      Any symbol.
  514.  
  515. `v'
  516.      Variable name: symbol that is `user-variable-p'.
  517.  
  518. `x'
  519.      Lisp expression read but not evaluated.
  520.  
  521. `X'
  522.      Lisp expression read and evaluated.
  523.  
  524.    In addition, if the string begins with `*', an error is signaled if
  525. the buffer is read-only.  This happens before reading any arguments. 
  526. If the string begins with `@', the window the mouse is over is
  527. selected before anything else is done.  You may use both `@' and `*';
  528. they are processed in the order that they appear.
  529.  
  530.    Normally, when describing a command that is run by name, we omit the
  531. RET that is needed to terminate the name.  Thus we may refer to `M-x
  532. auto-fill-mode' rather than `M-x auto-fill-mode' RET.  We mention the
  533. RET only when it it necessary to emphasize its presence, for example,
  534. when describing a sequence of input that contains a command name and
  535. arguments that follow it.
  536.  
  537.    `M-x' is defined to run the command `execute-extended-command',
  538. which is responsible for reading the name of another command and
  539. invoking it.
  540.  
  541. 
  542. File: emacs,  Node: Help,  Next: Mark,  Prev: M-x,  Up: Top
  543.  
  544. Help
  545. ****
  546.  
  547.    Emacs provides extensive help features which revolve around a single
  548. character, `C-h'.  `C-h' is a prefix key that is used only for
  549. documentation-printing commands.  The characters you can type after
  550. `C-h' are called "help options".  One help option is `C-h'; you use it
  551. to ask for help about using `C-h'.
  552.  
  553.    `C-h C-h' prints a list of the possible help options, and then asks
  554. you to type the desired option.  It prompts with a string
  555.  
  556.      A, B, C, F, I, K, L, M, N, S, T, V, W, C-c, C-d, C-n, C-w or C-h for more help:
  557.  
  558. You should type one of those characters.
  559.  
  560.    Typing a third `C-h' displays a description of what the options
  561. mean; Emacs still waits for you to type an option.  To cancel, type
  562. `C-g'.
  563.  
  564.    Here is a summary of the defined help commands.
  565.  
  566. `C-h a STRING RET'
  567.      Display list of commands whose names contain STRING (`command-
  568.      apropos').
  569.  
  570. `C-h b'
  571.      Display a table of all key bindings in effect now; local bindings
  572.      of the current major mode first, followed by all global bindings
  573.      (`describe-bindings').
  574.  
  575. `C-h c KEY'
  576.      Print the name of the command that KEY runs (`describe-key-
  577.      briefly').  `c' is for `character'.  For more extensive
  578.      information on KEY, use `C-h k'.
  579.  
  580. `C-h f FUNCTION RET'
  581.      Display documentation on the Lisp function named FUNCTION
  582.      (`describe-function').  Note that commands are Lisp functions, so
  583.      a command name may be used.
  584.  
  585. `C-h i'
  586.      Run Info, the program for browsing documentation files (`info'). 
  587.      The complete Emacs manual is available on-line in Info.
  588.  
  589. `C-h k KEY'
  590.      Display name and documentation of the command KEY runs
  591.      (`describe-key').
  592.  
  593. `C-h l'
  594.      Display a description of the last 100 characters you typed
  595.      (`view-lossage').
  596.  
  597. `C-h m'
  598.      Display documentation of the current major mode (`describe-mode').
  599.  
  600. `C-h n'
  601.      Display documentation of Emacs changes, most recent first
  602.      (`view-emacs-news').
  603.  
  604. `C-h p'
  605.      Display a table of all mouse bindings in effect now; local
  606.      bindings of the current major mode first, followed by all global
  607.      bindings (`describe-pointer').
  608.  
  609. `C-h s'
  610.      Display current contents of the syntax table, plus an explanation
  611.      of what they mean (`describe-syntax').
  612.  
  613. `C-h t'
  614.      Display the Emacs tutorial (`help-with-tutorial').
  615.  
  616. `C-h v VAR RET'
  617.      Display the documentation of the Lisp variable VAR (`describe-
  618.      variable').
  619.  
  620. `C-h w COMMAND RET'
  621.      Print which keys run the command named COMMAND (`where-is').
  622.  
  623. Documentation for a Key
  624. =======================
  625.  
  626.    The most basic `C-h' options are `C-h c' (`describe-key-briefly')
  627. and `C-h k'
  628. (`describe-key').  `C-h c KEY' prints the name of the command that KEY
  629. is bound to in the echo area.  For example, `C-h c C-f' prints
  630. `forward-char'.  Since command names are chosen to describe what the
  631. command does, using this option is a good way to get a somewhat cryptic
  632. description of what KEY does.
  633.  
  634.    `C-h k KEY' is similar to `C-h c' but gives more information.  It
  635. displays the documentation string of the function KEY is bound to as
  636. well as its name.  KEY is a string or vector of events.  When called
  637. interactvely, KEY may also be a menu selection.  This information does
  638. not usually fit into the echo area, so a window is used for the
  639. display.
  640.  
  641. Help by Command or Variable Name
  642. ================================
  643.  
  644.    `C-h f' (`describe-function') reads the name of a Lisp function
  645. using the minibuffer, then displays that function's documentation
  646. string in a window.  Since commands are Lisp functions, you can use
  647. the argument FUNCTION to get the documentation of a command that you
  648. know by name.  For example,
  649.  
  650.      C-h f auto-fill-mode RET
  651.  
  652. displays the documentation for `auto-fill-mode'. Using `C-h f' is the
  653. only way to see the documentation of a command that is not bound to
  654. any key, that is, a command you would normally call using `M-x'.  If
  655. the variable `describe-function-show-arglist' is `t',
  656. `describe-function' shows its arglist if the FUNCTION is not an
  657. autoload function.
  658.  
  659.    `C-h f' is also useful for Lisp functions you are planning to use
  660. in a Lisp program.  For example, if you have just written the code
  661. `(make-vector len)' and want to make sure you are using `make-vector'
  662. properly, type `C-h f make-vector RET'.  Because `C-h f' allows all
  663. function names, not just command names, you may find that some of your
  664. favorite abbreviations that work in `M-x' don't work in `C-h f'.  An
  665. abbreviation may be unique among command names, yet fail to be unique
  666. when other function names are allowed.
  667.  
  668.    If you type RET, leaving the minibuffer empty, `C-h f' by default
  669. describes the function called by the innermost Lisp expression in the
  670. buffer around point, provided that is a valid, defined Lisp function
  671. name.  For example, if point is located following the text
  672. `(make-vector (car x)', the innermost list containing point is the one
  673. starting with `(make-vector', so the default is to describe the
  674. function `make-vector'.
  675.  
  676.    `C-h f' is often useful just to verify that you have the right
  677. spelling for the function name.  If `C-h f' mentions a default in the
  678. prompt, you have typed the name of a defined Lisp function.  If that is
  679. what you wanted to know, just type `C-g' to cancel the `C-h f' command
  680. and continue editing.
  681.  
  682.    `C-h w COMMAND RET' tells you what keys are bound to COMMAND.  It
  683. prints a list of the keys in the echo area.  Alternatively, it informs
  684. you that a command is not bound to any keys, which implies that you
  685. must use `M-x' to call the command.
  686.  
  687.    `C-h v' (`describe-variable') is like `C-h f' but describes Lisp
  688. variables instead of Lisp functions.  Its default is the Lisp symbol
  689. around or before point, if that is the name of a known Lisp variable. 
  690. *Note Variables::.
  691.  
  692. Apropos
  693. =======
  694.  
  695.    It is possible to ask a question like, "What are the commands for
  696. working with files?"  To do this, type `C-h a file RET', which
  697. displays a list of all command names that contain `file', such as
  698. `copy-file', `find-file', and so on.  With each command name a brief
  699. description of its use and information on the keys you can use to
  700. invoke it is displayed.  For example, you would be informed that you
  701. can invoke `find-file' by typing `C-x C-f'.  The `a' in `C-h a' stands
  702. for `Apropos'; `C-h a' runs the Lisp function `command-apropos'.
  703.  
  704.    Because `C-h a' looks only for functions whose names contain the
  705. string you specify, you must use ingenuity in choosing the string.  If
  706. you are looking for commands for killing backwards and `C-h a
  707. kill-backwards RET' doesn't reveal any commands, don't give up.  Try
  708. just `kill', or just `backwards', or just `back'.  Be persistent. 
  709. Pretend you are playing Adventure.  Also note that you can use a
  710. regular expression as the argument (*note Regexps::.).
  711.  
  712.    Here is a set of arguments to give to `C-h a' that covers many
  713. classes of Emacs commands, since there are strong conventions for
  714. naming standard Emacs commands.  By giving you a feeling for the naming
  715. conventions, this set of arguments can also help you develop a
  716. technique for picking `apropos' strings.
  717.  
  718.      char, line, word, sentence, paragraph, region, page, sexp, list,
  719.      defun, buffer, screen, window, file, dir, register, mode,
  720.      beginning, end, forward, backward, next, previous, up, down,
  721.      search, goto, kill, delete, mark, insert, yank, fill, indent,
  722.      case, change, set, what, list, find, view, describe.
  723.  
  724.    To list all Lisp symbols that contain a match for a regexp, not just
  725. the ones that are defined as commands, use the command `M-x apropos'
  726. instead of `C-h a'.
  727.  
  728. Other Help Commands
  729. ===================
  730.  
  731.    `C-h i' (`info') runs the Info program, which is used for browsing
  732. through structured documentation files.  The entire Emacs manual is
  733. available within Info.  Eventually all the documentation of the GNU
  734. system will be available.  Type `h' after entering Info to run a
  735. tutorial on using Info.
  736.  
  737.    If something surprising happens, and you are not sure what commands
  738. you typed, use `C-h l' (`view-lossage').  `C-h l' prints the last 100
  739. command characters you typed.  If you see commands you don't know, use
  740. `C-h c' to find out what they do.
  741.  
  742.    Emacs has several major modes. Each mode redefines a few keys and
  743. makes a few other changes in how editing works.  `C-h m'
  744. (`describe-mode') prints documentation on the current major mode,
  745. which normally describes all the commands that are changed in this
  746. mode.
  747.  
  748.    `C-h b' (`describe-bindings') and `C-h s' (`describe-syntax')
  749. present information about the current Emacs mode that is not covered
  750. by `C-h m'.  `C-h b' displays a list of all key bindings now in
  751. effect; the local bindings of the current major mode first, followed
  752. by the global bindings (*note Key Bindings::.).  `C-h s' displays the
  753. contents of the syntax table, with explanations of each character's
  754. syntax (*note Syntax::.).
  755.  
  756.    The other `C-h' options display various files of useful
  757. information.  `C-h C-w' displays details on the complete absence of
  758. warranty for GNU Emacs.  `C-h n' (`view-emacs-news') displays the file
  759. `emacs/etc/NEWS', which contains documentation on Emacs changes
  760. arranged chronologically.  `C-h t' (`help-with-tutorial') displays the
  761. learn-by-doing Emacs tutorial.  `C-h C-c' (`describe-copying')
  762. displays the file `emacs/etc/COPYING', which tells you the conditions
  763. you must obey in distributing copies of Emacs.  `C-h C-d'
  764. (`describe-distribution') displays another file named
  765. `emacs/etc/DISTRIB', which tells you how you can order a copy of the
  766. latest version of Emacs.
  767.  
  768. 
  769. File: emacs,  Node: Mark,  Next: Killing,  Prev: Help,  Up: Top
  770.  
  771. Selecting Text
  772. **************
  773.  
  774.    Many Emacs commands operate on an arbitrary contiguous part of the
  775. current buffer. You can select text in two ways:
  776.  
  777.    * You use special keys to select text by defining a region between
  778.      point and the mark.
  779.  
  780.    * If you are running Lucid GNU Emacs under X, you can also select
  781.      text with the mouse.
  782.  
  783. The Mark and the Region
  784. =======================
  785.  
  786.    To specify the text for a command to operate on, set "the mark" at
  787. one end of it, and move point to the other end.  The text between
  788. point and the mark is called "the region".  You can move point or the
  789. mark to adjust the boundaries of the region.  It doesn't matter which
  790. one is set first chronologically, or which one comes earlier in the
  791. text.
  792.  
  793.    Once the mark has been set, it remains until it is set again at
  794. another place.  The mark remains fixed with respect to the preceding
  795. character if text is inserted or deleted in a buffer.  Each Emacs
  796. buffer has its own mark; when you return to a buffer that had been
  797. selected previously, it has the same mark it had before.
  798.  
  799.    Many commands that insert text, such as `C-y' (`yank') and `M-x
  800. insert-buffer', position the mark at one end of the inserted text--the
  801. opposite end from where point is positioned, so that the region
  802. contains the text just inserted.
  803.  
  804.    Aside from delimiting the region, the mark is useful for marking a
  805. spot that you may want to go back to.  To make this feature more
  806. useful, Emacs remembers 16 previous locations of the mark in the `mark
  807. ring'.
  808.  
  809. * Menu:
  810.  
  811. * Setting Mark::    Commands to set the mark.
  812. * Using Region::    Summary of ways to operate on contents of the region.
  813. * Marking Objects::    Commands to put region around textual units.
  814. * Mark Ring::       Previous mark positions saved so you can go back there.
  815. * Using X Selections::  Using the mouse to mark a region if running under X.
  816.  
  817. 
  818. File: emacs,  Node: Setting Mark,  Next: Using Region,  Prev: Mark,  Up: Mark
  819.  
  820. Setting the Mark
  821. ----------------
  822.  
  823.    Here are some commands for setting the mark:
  824.  
  825. `C-SPC'
  826.      Set the mark where point is (`set-mark-command').
  827.  
  828. `C-@'
  829.      The same.
  830.  
  831. `C-x C-x'
  832.      Interchange mark and point (`exchange-point-and-mark').
  833.  
  834. `C-<'
  835.      Pushes a mark at the beginning of the buffer.
  836.  
  837. `C->'
  838.      Pushes a mark at the end of the buffer.
  839.  
  840.    For example, to convert part of the buffer to all upper-case, you
  841. can use the `C-x C-u' (`upcase-region') command, which operates on the
  842. text in the region.  First go to the beginning of the text you want to
  843. capitalize and type `C-SPC' to put the mark there, then move to the
  844. end, and then type `C-x C-u' to capitalize the selected region.  You
  845. can also set the mark at the end of the text, move to the beginning,
  846. and then type `C-x C-u'.  Most commands that operate on the text in
  847. the region have the word `region' in their names.
  848.  
  849.    The most common way to set the mark is with the `C-SPC' command
  850. (`set-mark-command').  This command sets the mark where point is. You
  851. can then move point away, leaving the mark behind.  It is actually
  852. incorrect to speak of the character `C-SPC'; there is no such
  853. character.  When you type SPC while holding down CTRL, you get the
  854. character `C-@' on most terminals. This character is actually bound to
  855. `set-mark-command'.  But unless you are unlucky enough to have a
  856. terminal where typing `C-SPC' does not produce `C-@', you should think
  857. of this character as `C-SPC'.
  858.  
  859.    Since terminals have only one cursor, Emacs cannot show you where
  860. the mark is located. Most people use the mark soon after they set it,
  861. before they forget where it is. But you can see where the mark is with
  862. the command `C-x C-x' (`exchange-point-and-mark') which puts the mark
  863. where point was and point where the mark was.  The extent of the
  864. region is unchanged, but the cursor and point are now at the previous
  865. location of the mark.
  866.  
  867.    Another way to set the mark is to push the mark to the beginning of
  868. a buffer while leaving point at its original location. If you supply an
  869. argument to `C-<' (`mark-bob'), the mark is pushed N/10 of the way
  870. from the true beginning of the buffer. You can also set the mark at
  871. the end of a buffer with `C->' (`mark-eob'). It pushes the mark to the
  872. end of the buffer, leaving point alone. Supplying an argument to the
  873. command, pushes the mark N/10 of the way from the true end of the
  874. buffer.
  875.  
  876.    If you are using Lucid GNU Emacs under the X window system, you can
  877. set the variable `zmacs-regions' to `t'. This makes the current region
  878. (defined by point and mark) highlight and makes it available as the X
  879. clipboard selection, which means you can use the menu bar items on it.
  880.  *Note Active Regions:: for more information.
  881.  
  882.    `C-x C-x' is also useful when you are satisfied with the location of
  883. point but want to move the mark; do `C-x C-x' to put point there and
  884. then you can move it.  A second use of `C-x C-x', if necessary, puts
  885. the mark at the new location with point back at its original location.
  886.  
  887. * Menu:
  888.  
  889. * Active Regions::  Having the region highlight while working under X.
  890.  
  891. 
  892. File: emacs,  Node: Using Region,  Next: Marking Objects,  Prev: Setting Mark,  Up: Mark
  893.  
  894. Operating on the Region
  895. -----------------------
  896.  
  897.    Once you have created an active region, you can do many things to
  898. the text in it:
  899.  
  900.    * Kill it with `C-w' (*note Killing::.).
  901.  
  902.    * Save it in a register with `C-x x' (*note Registers::.).
  903.  
  904.    * Save it in a buffer or a file (*note Accumulating Text::.).
  905.  
  906.    * Convert case with `C-x C-l' or `C-x C-u' 
  907.      (*note Case::.).
  908.  
  909.    * Evaluate it as Lisp code with `M-x eval-region' (*note Lisp
  910.      Eval::.).
  911.  
  912.    * Fill it as text with `M-g' (*note Filling::.).
  913.  
  914.    * Print hardcopy with `M-x print-region' (*note Hardcopy::.).
  915.  
  916.    * Indent it with `C-x TAB' or `C-M-\' (*note Indentation::.).
  917.  
  918. 
  919. File: emacs,  Node: Marking Objects,  Next: Mark Ring,  Prev: Using Region,  Up: Mark
  920.  
  921. Commands to Mark Textual Objects
  922. --------------------------------
  923.  
  924.    There are commands for placing point and the mark around a textual
  925. object such as a word, list, paragraph or page.
  926.  
  927. `M-@'
  928.      Set mark after end of next word (`mark-word').  This command and
  929.      the following one do not move point.
  930.  
  931. `C-M-@'
  932.      Set mark after end of next Lisp expression (`mark-sexp').
  933.  
  934. `M-h'
  935.      Put region around current paragraph (`mark-paragraph').
  936.  
  937. `C-M-h'
  938.      Put region around current Lisp defun (`mark-defun').
  939.  
  940. `C-x h'
  941.      Put region around entire buffer (`mark-whole-buffer').
  942.  
  943. `C-x C-p'
  944.      Put region around current page (`mark-page').
  945.  
  946.    `M-@' (`mark-word') puts the mark at the end of the next word,
  947. while `C-M-@' (`mark-sexp') puts it at the end of the next Lisp
  948. expression. These characters sometimes save you some typing.
  949.  
  950.    A number of commands are available that set both point and mark and
  951. thus delimit an object in the buffer.  `M-h' (`mark-paragraph') moves
  952. point to the beginning of the paragraph that surrounds or follows
  953. point, and puts the mark at the end of that paragraph (*note
  954. Paragraphs::.).  You can then indent, case-convert, or kill the whole
  955. paragraph.  In the same fashion, `C-M-h' (`mark-defun') puts point
  956. before and the mark after the current or following defun (*note
  957. Defuns::.).  `C-x C-p' (`mark-page') puts point before the current
  958. page (or the next or previous, depending on the argument), and mark at
  959. the end (*note Pages::.).  The mark goes after the terminating page
  960. delimiter (to include it), while point goes after the preceding page
  961. delimiter (to exclude it).  Finally, `C-x h' (`mark-whole-buffer')
  962. sets up the entire buffer as the region by putting point at the
  963. beginning and the mark at the end.
  964.  
  965. 
  966. File: emacs,  Node: Mark Ring,  Prev: Marking Objects,  Up: Mark
  967.  
  968. The Mark Ring
  969. -------------
  970.  
  971.    Aside from delimiting the region, the mark is also useful for
  972. marking a spot that you may want to go back to.  To make this feature
  973. more useful, Emacs remembers 16 previous locations of the mark in the
  974. "mark ring".  Most commands that set the mark push the old mark onto
  975. this ring.  To return to a marked location, use `C-u C-SPC' (or `C-u
  976. C-@'); this is the command `set-mark-command' given a numeric
  977. argument.  The command moves point to where the mark was, and restores
  978. the mark from the ring of former marks. Repeated use of this command
  979. moves point to all the old marks on the ring, one by one.  The marks
  980. you have seen go to the end of the ring, so no marks are lost.
  981.  
  982.    Each buffer has its own mark ring.  All editing commands use the
  983. current buffer's mark ring.  In particular, `C-u C-SPC' always stays in
  984. the same buffer.
  985.  
  986.    Many commands that can move long distances, such as `M-<'
  987. (`beginning-of-buffer'), start by setting the mark and saving the old
  988. mark on the mark ring.  This makes it easier for you to move back
  989. later.  Searches set the mark, unless they do not actually move point. 
  990. When a command sets the mark, `Mark Set' is printed in the echo area.
  991.  
  992.    The variable `mark-ring-max' is the maximum number of entries to
  993. keep in the mark ring.  If that many entries exist and another entry is
  994. added, the last entry in the list is discarded.  Repeating `C-u C-SPC'
  995. circulates through the entries that are currently in the ring.
  996.  
  997.    The variable `mark-ring' holds the mark ring itself, as a list of
  998. marker objects in the order most recent first.  This variable is local
  999. in every buffer.
  1000.  
  1001. 
  1002. File: emacs,  Node: Mouse Selection,  Next: Entering Emacs,  Prev: Pull-Down Menus,  Up: Top
  1003.  
  1004. Selecting Text with the Mouse
  1005. =============================
  1006.  
  1007.    If you are using Lucid GNU Emacs under X, you can use the mouse
  1008. cursor to select text. There are two mouse cursor shapes:
  1009.  
  1010.    * When the mouse cursor is over text, it appears as an I-beam, the
  1011.      same cursor that `xterm' uses.
  1012.  
  1013.    * When the mouse cursor is not over text, it appears as a plus sign
  1014.      (+).
  1015.  
  1016.    You can set the value of the variable `x-mode-pointer-shape' to
  1017. determine the shape of the mouse pointer when it is over the modeline.
  1018.  If the value is `nil', the variable `x-nontext-pointer-shape' or the
  1019. variable `x-pointer-shape' is used.
  1020.  
  1021.    If you want to get fancy, you can set the foreground and background
  1022. colors of the mouse pointer with the variables
  1023. `x-pointer-background-color' and `x-pointer-foreground-color'.
  1024.  
  1025.    There are two ways to select a region of text with the mouse:
  1026.  
  1027.    To select a word in text, double click with the left mouse button
  1028. while the mouse cursor is over the word.  The word is highlighted when
  1029. selected. On monochrome monitors, a stipled background indicates that a
  1030. region of text has been highlighted. On color monitors, a color
  1031. background indicates highlighted text. You can triple-click to select
  1032. whole lines.
  1033.  
  1034.    To select an arbitrary region of text:
  1035.  
  1036.   1. Move the mouse cursor over the character at the beginning of the
  1037.      region of text you want to select.
  1038.  
  1039.   2. Press and hold the left mouse button.
  1040.  
  1041.   3. While holding the left mouse button down, drag the cursor to the
  1042.      character at the end of the region of text you want to select.
  1043.  
  1044.   4. Release the left mouse button.
  1045.  
  1046.    The selected region of text is highlighted.
  1047.  
  1048.    Once a region of text is selected, it becomes the primary X
  1049. selection (*note Using X Selections::.) as well as the Emacs selected
  1050. region. You can paste it into other X applications and use the options
  1051. from the Edit pull-down menu on it.  Since it is also the Emacs
  1052. region, you can use Emacs region commands on it.
  1053.  
  1054. Additional Mouse Operations
  1055. ---------------------------
  1056.  
  1057.    Lucid GNU Emacs also provides the following mouse functions.  Most
  1058. of these are not bound to mouse gestures by default, but they are
  1059. provided for your customization pleasure.  For example, if you wanted
  1060. `shift-left' (that is, holding down the shift key and clicking the
  1061. left button) to delete the character at which you are pointing, then
  1062. you could do this:
  1063.  
  1064.      (global-set-key '(shift button1) 'mouse-del-char)
  1065.  
  1066. `mouse-del-char'
  1067.      Delete the character pointed to by the mouse.
  1068.  
  1069. `mouse-delete-window'
  1070.      Delete the Emacs window that the mouse is on.
  1071.  
  1072. `mouse-keep-one-window'
  1073.      Select the Emacs window that the mouse is on, then delete all
  1074.      other windows on this screen.
  1075.  
  1076. `mouse-kill-line'
  1077.      Kill the line pointed to by the mouse.
  1078.  
  1079. `mouse-line-length'
  1080.      Print the length of the line indicated by the pointer.
  1081.  
  1082. `mouse-scroll'
  1083.      Scroll point to the mouse position.
  1084.  
  1085. `mouse-select'
  1086.      Select the Emacs window the mouse is on.
  1087.  
  1088. `mouse-select-and-split'
  1089.      Select the Emacs window mouse is on, then split it vertically in
  1090.      half.
  1091.  
  1092. `mouse-set-mark'
  1093.      Select the Emacs window the mouse is on and set the mark at the
  1094.      mouse position.  Display the cursor at that position for a second.
  1095.  
  1096. `mouse-set-point'
  1097.      Select the Emacs window that the mouse is on and move point to the
  1098.      mouse position.
  1099.  
  1100. `mouse-track'
  1101.      Make a selection with the mouse.   This is the default binding of
  1102.      the left mouse button (button1).
  1103.  
  1104. `mouse-track-adjust'
  1105.      Extend the existing selection.  This is the default binding of
  1106.      shift-button1.
  1107.  
  1108. `mouse-track-and-copy-to-cutbuffer'
  1109.      Make a selection like `mouse-track', but also copy it to the cut
  1110.      buffer.
  1111.  
  1112. `mouse-track-delete-and-insert'
  1113.      Make a selection with the mouse and insert it at point.  This is
  1114.      the default binding of control-shift-button1.
  1115.  
  1116. `mouse-track-insert'
  1117.      Make a selection with the mouse and insert it at point.  This is
  1118.      the default binding of control-button1.
  1119.  
  1120. `mouse-window-to-region'
  1121.      Narrow a window to the region between the cursor and the mouse
  1122.      pointer.
  1123.  
  1124.    The `M-x mouse-track' command should be bound to a mouse button.  If
  1125. you click-and-drag, the selection is set to the region between the
  1126. point of the initial click and the point at which you release the
  1127. button.  These positions do not need to be ordered.
  1128.  
  1129.    If you click-and-release without moving the mouse, the point is
  1130. moved, and the selection is disowned (there will be no selection
  1131. owner.)  The mark will be set to the previous position of point.
  1132.  
  1133.    If you double-click, the selection will extend by symbols instead
  1134. of by characters.  If you triple-click, the selection will extend by
  1135. lines.
  1136.  
  1137.    If you drag the mouse off the top or bottom of the window, you can
  1138. select pieces of text that are larger than the visible part of the
  1139. buffer; the buffer will scroll as necessary.
  1140.  
  1141.    The selected text becomes the current X selection, and is also
  1142. copied to the top of the kill ring.  Point will be left at the
  1143. position at which you released the button and the mark will be left at
  1144. the initial click position.  Bind a mouse click to
  1145. `mouse-track-and-copy-to-cutbuffer' to copy selections to the cut
  1146. buffer.
  1147.  
  1148.    See also the `mouse-track-adjust' command, on `Sh-button1'.
  1149.  
  1150.    The `M-x mouse-track-adjust' command should be bound to a mouse
  1151. button.  The selection will be enlarged or shrunk so that the point of
  1152. the mouse click is one of its endpoints.  This is only meaningful
  1153. after the `mouse-track' command (button1) has been executed.
  1154.  
  1155.    The `M-x mouse-track-delete-and-insert' command is exactly the same
  1156. as the `mouse-track' command on button1, except that point is not
  1157. moved; the selected text is immediately inserted after being selected;
  1158. and the text of the selection is deleted.
  1159.  
  1160.    The `M-x mouse-track-insert' command is exactly the same as the
  1161. `mouse-track' command on button1, except that point is not moved; the
  1162. selected text is immediately inserted after being selected; and the
  1163. selection is immediately disowned afterwards.
  1164.  
  1165.